package com.example.controller;


import com.example.dto.FilesPageDTO;
import com.example.entity.Mapfile;
import com.example.result.PageResult;
import com.example.result.Result;
import com.example.service.IMapfileService;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author 陈昌吉
 * @since 2024-04-16
 */
@ResponseBody
@CrossOrigin
@Data
@Slf4j
@RestController
@RequestMapping("/mapfile")
public class MapfileController {

    @Autowired
    private IMapfileService iMapfileService;

    /**
     * 新增UV贴图文件
     * @param file
     * @param hid
     * @return
     */
    @PostMapping("/insertFile")
    public Result<List<Mapfile>> insertFile(MultipartFile file, @RequestParam Integer hid){
        log.info("新增UV贴图文件：{},{}",file,hid);

        List<Mapfile> mapfile = iMapfileService.insertFile(file,hid);


        return Result.success(mapfile);
    }

    /**
     * 根据作业ID获取以提交VU贴图文件
     * @param hid
     * @return
     */
    @PostMapping("/select")
    public Result<List<Mapfile>> select(@RequestBody Integer hid){
        log.info("根据作业ID获取以提交VU贴图文件：{}",hid);
        List<Mapfile> mapfiles = iMapfileService.select(hid);
        return Result.success(mapfiles);
    }

    /**
     * 删除UV贴图文件
     * @param mapfile
     */
    @DeleteMapping("/delete")
    public void deleteMapFile(@RequestBody Mapfile mapfile){
        log.info("删除UV贴图文件：{}",mapfile);
        iMapfileService.deleteById(mapfile);
    }

    /**
     * 获取审核文件相关接口
     * @param filesPageDTO
     * @return
     */
    @PostMapping("/selectAll")
    public Result selectAll(@RequestBody FilesPageDTO filesPageDTO){
        log.info("获取审核文件相关接口：{}",filesPageDTO);
        PageResult pageAll= iMapfileService.selectAll(filesPageDTO);

        return Result.success(pageAll);

    }

    /**
     * 修改UV贴图状态相关接口
     * @param mapfile
     * @return
     */
    @PostMapping("/updateMapFiles")
    public Result updateMapFiles(@RequestBody Mapfile mapfile){
        log.info("修改UV贴图状态相关接口：",mapfile);
        iMapfileService.updateMapFiles(mapfile);
        return Result.success();
    }

}
